home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / guilib3 / inc / dialog.h < prev    next >
C/C++ Source or Header  |  1993-11-30  |  9KB  |  208 lines

  1. /*    :*****************************************************************
  2.     :    "dialog.h"    :    system“Pride”ダイアログ・ライブラリ
  3.     :*****************************************************************
  4. */
  5. #ifndef    _DIALOG_H
  6. #define    _DIALOG_H
  7.  
  8. #ifndef    _GUIDEFS_H
  9. #    include    "guidefs.h"
  10. #endif
  11. #ifndef    _DISP_H
  12. #    include    "disp.h"
  13. #endif
  14. #ifndef    _EVENT_H
  15. #    include    "event.h"
  16. #endif
  17.  
  18. typedef    struct                /* ダイアログ座標構造体    */
  19. {    SHORT    x0, y0, xs, ys;
  20. } DLGBOX;
  21.  
  22. typedef    struct                /* ダイアログ構造体                */
  23. {
  24.     DLGBOX        fr;            /* 座標                            */
  25.     COLOR        baseCol;    /* ベースカラー                    */
  26.     GBLK        *gbuf;        /* VRAM退避用バッファ            */
  27.     char        page;        /* 書き込みページ保存用            */
  28.     void        (*func)();    /* 描画関数                        */
  29.     void        *ptr;        /* ユーザーパラメータポインタ    */
  30. } DLG_T;
  31. #define    DLG    DLG_T
  32.  
  33. #define    DLGPOS_MOS_SET_HOME        (0x10010)                /* マウス位置(左上)    */
  34. #define    DLGPOS_MOS_SET_CENTER    (0x10020)                /* マウス位置中央        */
  35. #define    DLGPOS_CENTER_OF_SCN    (0x10030)                /* 画面中央                */
  36. #define    DLGPOS_CENTER_OF_POS(p)    (0x20000+((p)&0xFFFF))    /* 指定の座標を中心に    */
  37.  
  38. #ifdef    _DIALOG_MAIN
  39.         GBLK    *_dlg_push_vram( FRAME *fr );
  40.         void    _dlg_pop_vram( GBLK *buf);
  41.         void    _dlg_free_vram( GBLK *buf);
  42.         void    *((*_DlgPushVram)()) = (void *((*)()))_dlg_push_vram;
  43.         void      (*_DlgPopVram)()   = _dlg_pop_vram;
  44.         void      (*_DlgFreeVram)()  = _dlg_free_vram;
  45. #else
  46. extern    void     *((*_DlgPushVram)());
  47. extern    void      (*_DlgPopVram)();
  48. extern    void      (*_DlgFreeVram)();
  49. #endif
  50. #define    DLG_FREE_VRAM(buf)        (_DlgFreeVram)((buf))
  51. #define    DLG_PUSH_VRAM(fr)        (_DlgPushVram)((fr))
  52. #define    DLG_POP_VRAM(buf)        (_DlgPopVram)((buf))
  53.  
  54. extern    int        DLG_setArea( int x1, int y1, int x2, int y2 );
  55. extern    DLG_T    *DLG_open( int x0, int y0, int xs, int ys, COLOR baseCol, void (*func)(), void *ptr );
  56. extern    int        DLG_dsp( DLG_T *dlg );
  57. extern    void    DLG_move( DLG_T *dlg, int x0, int y0);
  58. extern    void    DLG_close( DLG_T *dlg );
  59.  
  60. /*    "dlgsub1.c"        ------------------------------------------------*/
  61. extern    void    DLG_topBar( DLGBOX *fr, COLOR stlCol, COLOR barCol );
  62. extern    void    DLG_title( DLGBOX *fr, COLOR stlCol, COLOR barCol, CONST char *msg );
  63.  
  64. /*    "dlgsub2.c"        ------------------------------------------------*/
  65. extern    void    DLG_shadow( DLGBOX *fr );
  66. extern    void    DLG_toDlgbox( FRAME *fr, DLGBOX *db );
  67. extern    void    DLG_corect( DLGBOX *fr );
  68.  
  69. /*    "dlgmove.c"        ------------------------------------------------*/
  70. #define    DLG_ANI_CLK        (48*CLOCKS_PER_SEC/100)
  71. #define    DLG_ANI_CLK2    (26*CLOCKS_PER_SEC/100)
  72. #define    DlgMoveAnime(newFr,oldFr,clk)    \
  73.         BoxMoveAnime( (newFr), (oldFr), DspCtrl.writePage, (clk) );
  74.  
  75. extern    int        DlgMove( DLGBOX *fr );
  76.  
  77. /*    "dlgmvfnc.c"    ------------------------------------------------*/
  78. extern    int        DLG_defMoveFunc( int evtNo, EVTSBJ_T *sbj );
  79.  
  80. /*    "dlg010.c"        ------------------------------------------------*/
  81.  
  82. /*    "dlg011.c"        ------------------------------------------------*/
  83. extern    DLG_T    *DLG_graphMeterOpen( int x0, int y0, int strCol, int bacCol, int boxCol, CONST char *title, ... );
  84. extern    int        DLG_graphMeterStart( DLG_T *dlg, int start, int goal, int div );
  85. extern    void    DLG_graphMeterDsp( DLG_T *dlg, int val );
  86. extern    void    DLG_graphMeterPuts( DLG_T *dlg, COLOR strCol, CONST char *msg, ... );
  87. extern    void    DLG_graphMeterClose( DLG_T *dlg );
  88. extern    void    DLG_graphMeterCloseMsg( DLG_T *dlg, int waitSec, COLOR strCol, CONST char *msg, ... );
  89.  
  90. /*    "dlg012.c"        ------------------------------------------------*/
  91. extern    DLG_T    *DLG_getsOpen( int x0, int y0, int minXs, CONST char *msg, ... );
  92. extern    void    DLG_getsClose( DLG_T *dlg );
  93. extern    int        DLG_getsSetTitle( DLG_T *dlg, CONST char *title, ... );
  94. extern    int        DLG_getsStart( DLG_T *dlg, size_t bufSize, char *buf );
  95.  
  96. /*    "dlg014.c"        ------------------------------------------------*/
  97. #define    DLGMSG_POS_CONTINUE        (-1)
  98. #define    DLGMSG_POS_CENTERING    (-2)
  99.  
  100. extern    DLG_T    *DLG_msgOpen( int x0, int y0, int cnsXs, int cnsYs, int strCol, int bacCol, int boxCol, CONST char *title, ... );
  101. extern    int        DLG_msgSetConfig( DLG_T *dlg, int tab, int fntX, int fntY );
  102. extern    int        DLG_msgSetCenteringMode( DLG_T *dlg, int md );
  103. extern    int        DLG_msgSetPosition( DLG_T *dlg, int cx0, int cy0 );
  104. extern    int        DLG_msgSetColor( DLG_T *dlg, int col, int bac );
  105. extern    void    DLG_msgClear( DLG_T *dlg, int bacCol );
  106. extern    int        DLG_msgPutc( DLG_T *dlg, int ch );
  107. extern    int        DLG_msgPuts( DLG_T *dlg, CONST char *s );
  108. extern    int        DLG_msgPrintf( DLG_T *dlg, CONST char *form, ... );
  109. extern    int        DLG_msgWrtstr( DLG_T *dlg, CONST char *msg, int cx0, int cy0, int col, int bac );
  110. extern    void    DLG_msgClose( DLG_T *dlg );
  111.  
  112. /*    "dlg015.c"        ------------------------------------------------*/
  113. extern    int        DLG_tmpMsgBox (
  114.     int x0, int y0, int strCol, int bacCol, int boxCol,
  115.     CONST char *form, ... );
  116.  
  117. /*    "dlg016.c"        ------------------------------------------------*/
  118. extern    int        DLG_tmpMsgTime (
  119.     int x0, int y0, int strCol, int bacCol, int boxCol, int waitSec,
  120.     CONST char *form, ... );
  121.  
  122. /*    "dlg017.c"        ------------------------------------------------*/
  123. typedef    struct
  124. {
  125.     UCHAR    typ;                /* タイプ                */
  126.     UCHAR    eatt;                /* イベント属性            */
  127.     UCHAR    matt;                /* メッセージ属性        */
  128.     UCHAR    batt;                /* ボタン属性            */
  129.     int        flen;                /* 表示文字数            */
  130.     char    *msg;                /* 表示メッセージ        */
  131.     int        attr;                /* イベント登録属性        */
  132.     int        evtNo;                /* イベントNo            */
  133.     int        (*func)(int,EVTSBJ_T *);    /* イベント関数    */
  134.     void    *ptr;                /* 汎用ポインタ            */
  135.     char    key;                /* ショートカットキー    */
  136. } DLGLSTSEL_T;
  137.  
  138. typedef    struct
  139. {    DLGLSTSEL_T    *sel;        /* 配列    */
  140. } DLGLSTOBJ_T;
  141.  
  142. #define    DLGLST_ATT_OBJKEY        (1)    /* ショートカットキー禁止    */
  143.  
  144. #define    DLGLST_SELTYP_MSG        (0)
  145. #define    DLGLST_SELTYP_BTN        (1)
  146.  
  147. #define    DLGLST_SELMATT_RIGHTCUT    (0)    /* 右を切る        */
  148. #define    DLGLST_SELMATT_LEFTCUT    (1)    /* 左を切る        */
  149. #define    DLGLST_SELEATT_IGN        (1)
  150. #define    DLGLST_SELBATT_ON        (1)
  151. #define    DLGLST_SELBATT_LEFT        (2)
  152.  
  153. extern    DLGLSTOBJ_T    *DLG_lstAllocObj( int objN, int selN );
  154. extern    int        DLG_lstFreeObj( DLGLSTOBJ_T *obj, int objN, int selN);
  155. extern    int        DLG_lstSetSel( DLGLSTOBJ_T *obj, int objPos, int selPos,
  156.                 int typ, int eatt, int matt, int batt, int flen,
  157.                 int attr, int evtNo, int (*func)(int,EVTSBJ_T *), void *ptr,
  158.                 int key, CONST char *msg, ... );
  159. extern    DLG_T    *DLG_lstOpen( int x0, int y0, int xn, int yn, int objN, int selN, DLGLSTOBJ_T *obj, int mnuNum );
  160. extern    int        DLG_lstChangeObj( DLG_T *dlg, int objN, int selN, DLGLSTOBJ_T *dlg );
  161. extern    int        DLG_lstSetSelNo( DLG_T *dlg, int selNo );
  162. extern    int        DLG_lstSetTitle( DLG_T *dlg, CONST char *title, ... );
  163. extern    int        DLG_lstSetGuideMsg( DLG_T *dlg, CONST char *msg, ... );
  164. extern    int        DLG_lstSetMnuBtn( DLG_T *dlg, int attr, int (*func)(int,EVTSBJ_T *), void *ptr, CONST char *msg, ... );
  165. extern    int        DLG_lstStart( DLG_T *dlg);
  166. extern    int        DLG_lstClose( DLG_T *dlg);
  167.  
  168. /*    "dlg018.c"        ------------------------------------------------*/
  169. typedef    struct    _dlgtxtlin_t
  170. {
  171.     struct    _dlgtxtlin_t    *next;
  172.     struct    _dlgtxtlin_t    *prev;
  173.     size_t    len;
  174.     char    p[1];
  175. } DLGTXTLIN_T;
  176.  
  177. extern    DLG_T    *DLG_txtOpen( int x0, int y0, int xn, int yn, DLGTXTLIN_T *topLin, int mnuNum );
  178. extern    int        DLG_txtChangeLin( DLG_T *dlg, DLGTXTLIN_T *topLin );
  179. extern    int        DLG_txtSetTitle( DLG_T *dlg, CONST char *title, ... );
  180. extern    int        DLG_txtSetGuideMsg( DLG_T *dlg, CONST char *msg, ... );
  181. extern    int        DLG_txtSetMnuBtn( DLG_T *dlg, int attr, int (*func)(int,EVTSBJ_T *), void *ptr, CONST char *msg, ... );
  182. extern    int        DLG_txtStart( DLG_T *dlg );
  183. extern    int        DLG_txtClose( DLG_T *dlg );
  184. extern    DLGTXTLIN_T    *DLG_txtSetLinBuf( DLGTXTLIN_T *crtLin, int tab, int xs, CONST char *msg, ... );
  185. extern    int        DLG_txtFreeLinBuf( DLGTXTLIN_T *topLin );
  186.  
  187. /*    "dlg019.c"        ------------------------------------------------*/
  188. extern    DLG_T    *DLG_019open( int x0, int y0, int lxs, int lys, CONST char *title, ... );
  189. extern    int        DLG_019close( DLG_T *dlg );
  190. extern    int        DLG_019setObj( DLG_T *dlg, CONST char *form, ... );
  191. extern    int        DLG_019freeObj( DLG_T *dlg );
  192. extern    int        DLG_019start( DLG_T *dlg, char *buf, size_t bufSiz );
  193.  
  194. /*    "dlg020.c"        ------------------------------------------------*/
  195. typedef    struct
  196. {
  197.     CONST char    *msg;
  198.     COLOR        col;
  199.     COLOR        _dmy;
  200. } DLGCOLTBL_T;
  201.  
  202. extern    DLG_T    *DLG_colTblOpen( int x0, int y0, int colNum, DLGCOLTBL_T *colTbl );
  203. extern    int        DLG_colTblSetTitle( DLG_T *dlg, CONST char *form, ... );
  204. extern    int        DLG_colTblStart( DLG_T *dlg );
  205. extern    int        DLG_colTblClose( DLG_T *dlg );
  206.  
  207. #endif
  208.